namespace ModuleOne
{
    using MEF_Test.Bricks;
    using MEF_Test.Bricks.TemplateProvider;
    using MEF_Test.Contracts;

    public interface IDiskBrowserNodeViewModelFactory
    {
        /// <summary>
        /// Creates a Browser Node View Model according to the provided dependencies.
        /// </summary>
        /// <param name="fileHandler">The file handler.</param>
        /// <param name="mediaHandlerFactoryProvider">The media handler factory provider.</param>
        /// <param name="templateProvider">The template provider.</param>
        /// <returns>
        /// A valid browser view model representing a media file.
        /// </returns>
        BrowserNodeViewModel<IDiskFileHandler> Create(IDiskFileHandler fileHandler, IMediaHandlerFactoryProvider mediaHandlerFactoryProvider, ITemplateProvider templateProvider);
    }
}